/**
 * 
 */
package com.gwcloud.leetcode.offers;

import java.util.PriorityQueue;
import java.util.Queue;

/**
 * @ClassName   : Leetcode0400 
 * @author      : ganwei 
 * @date        : 2020年6月4日
 * @Description : Leetcode0400
 */
public class Leetcode0400 {
    public int[] getLeastNumbers(int[] arr, int k) {
    	if(arr.length == 0 || k == 0){
    		return new int[0];
    	}
    	
    	Queue<Integer> pq = new PriorityQueue<>((v1, v2) -> v2 - v1);
    	for(int num : arr){
    		if(pq.size() < k){
    			pq.offer(num);
    		}else if(num < pq.peek()){
    			pq.poll();
    			pq.offer(num);
    		}
    	}
    	
    	int[] res = new int[pq.size()];
        int idx = 0;
        for(int num: pq) {
            res[idx++] = num;
        }
        return res;
    }
}
